/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.component.schedule.core.service;


import info.peigen.hotpot.common.service.base.processor.AbstractProcessorService;
import info.peigen.hotpot.component.schedule.core.service.processor.active.ScheduleJobActiveProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.active.ScheduleNodeActiveProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.change.ScheduleJobChangeAllProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.change.ScheduleJobChangeAllResultProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.create.ScheduleJobCreateProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.create.ScheduleJobCreateResultProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.create.ScheduleNodeCreateProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.create.ScheduleNodeCreateResultProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.delete.ScheduleJobDeleteProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.delete.ScheduleJobDeleteResultProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.delete.ScheduleNodeDeleteProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.delete.ScheduleNodeDeleteResultProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.edit.ScheduleJobEditProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.edit.ScheduleJobEditResultProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.edit.ScheduleNodeEditProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.edit.ScheduleNodeEditResultProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.store.ScheduleJobStoreProcessor;
import info.peigen.hotpot.component.schedule.core.service.processor.store.ScheduleNodeStoreProcessor;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import org.noear.solon.annotation.Inject;

/**
 * <b>(AbstractScheduleService)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2023/1/6
 */
@SuppressWarnings("ALL")
@FieldDefaults(level = AccessLevel.PROTECTED)
public class AbstractScheduleService extends AbstractProcessorService {
    // Active Processors
    @Inject
    ScheduleNodeActiveProcessor scheduleNodeActiveProcessor;

    @Inject
    ScheduleJobActiveProcessor        scheduleJobActiveProcessor;
    // Create Processors
    @Inject
    ScheduleNodeCreateProcessor       scheduleNodeCreateProcessor;
    @Inject
    ScheduleNodeCreateResultProcessor scheduleNodeCreateResultProcessor;


    @Inject
    ScheduleJobCreateProcessor       scheduleJobCreateProcessor;
    @Inject
    ScheduleJobCreateResultProcessor scheduleJobCreateResultProcessor;

    // Edit Processors
    @Inject
    ScheduleNodeEditProcessor       scheduleNodeEditProcessor;
    @Inject
    ScheduleNodeEditResultProcessor scheduleNodeEditResultProcessor;

    @Inject
    ScheduleJobEditProcessor       scheduleJobEditProcessor;
    @Inject
    ScheduleJobEditResultProcessor scheduleJobEditResultProcessor;

    // Delete Processors
    @Inject
    ScheduleNodeDeleteProcessor       scheduleNodeDeleteProcessor;
    @Inject
    ScheduleNodeDeleteResultProcessor scheduleNodeDeleteResultProcessor;

    @Inject
    ScheduleJobDeleteProcessor       scheduleJobDeleteProcessor;
    @Inject
    ScheduleJobDeleteResultProcessor scheduleJobDeleteResultProcessor;

    // changeAll Processors
    @Inject
    ScheduleJobChangeAllProcessor       scheduleJobChangeAllProcessor;
    @Inject
    ScheduleJobChangeAllResultProcessor scheduleJobChangeAllResultProcessor;

    // Store Processors
    @Inject
    ScheduleNodeStoreProcessor scheduleNodeStoreProcessor;
    @Inject
    ScheduleJobStoreProcessor  scheduleJobStoreProcessor;
}